Systems and methods for information management using socially vetted graphs

ABSTRACT

The present invention allows for an easy-to-use, web-based, schema-less database system that provides organizations the ability to organically model, store, and access information in an iterative and evolutionary manner. Users are encouraged to grow and explore the information domain intuitively. One embodiment is a method of collaboratively managing an entity-relationship graph, including: displaying the entity-relationship graph to a voting user; collecting data on expert status of the voting user indicating whether the voting user is an expert on a given topic; assigning a voting weight to one or more relationships in said entity-relationship graph in response to an input from the voting user and based on the voting user&#39;s expert status; and sorting the relationships in the entity-relationship graph based at least on said voting weight.

REFERENCE TO RELATED APPLICATIONS

The present application is a Continuation of and claims priority fromU.S. Ser. No. 13/290,106, filed on Nov. 6, 2011 and entitled “SYSTEMSAND METHODS FOR INFORMATION MANAGEMENT USING SOCIALLY CONSTRUCTEDGRAPHS,” which itself claims priority from provisional application U.S.Ser. No. 61/412,263, entitled “Simfo Information Management System,”filed on Nov. 10, 2010, the entirety of both of which are herebyincorporated by reference herein.

FIELD OF THE INVENTION

The present disclosure relates to electronic information systems and inparticular, a graph-based information system that provides for flexible,intuitive, and organic development of information models, includingsocially constructed graphs.

BACKGROUND OF THE INVENTION

The statements in this section merely provide background informationrelated to the present disclosure and may not constitute prior art.

There exists a gap in current information technologies betweenspreadsheets and documents with their ease of use and flexibility—andrelational databases with their organizational structure, configurationmanagement, and query capabilities. A large number of users are managinga large portion of their information in spreadsheets and documentsbecause of the relatively large investment required to develop andmaintain a database. Many organizations never develop databases due tothe expertise required to develop and manage a database. In otherorganizations, databases may exist for certain types of information, butfor ad hoc and recently created/acquired information, the information isat least temporarily managed in documents and spreadsheets.

The present invention is directed towards lowering the investmentbarrier for information management systems by providing an intuitive andorganically-built information management service that is both easy touse and flexible, yet capable of queries and configuration managementnormally associated with relational databases.

A similar gap exists in the domain of public knowledge bases, such asWIKIPEDIA and FREEBASE. For example, WIKIPEDIA lacks the relationalstructure and query capabilities of a database, whereas FREEBASE lacksthe ease of use and flexibility of a spreadsheet or document tool. Thus,for society at large, there is lacking a comprehensive public databaseof information that the average Internet user is likely to contribute toin meaningful ways.

Effective and efficient management of information is key to the successof many complex endeavors, ranging from running a business enterprise tomanaging a large research and development project.

The technological solution described below to flexibly store this kindof information in a way that can be queried falls under the realm ofgraph theory, where information is organized into entities, and thenrelationships are built by combing entities with relations. As entitiesare linked into relationships, the resulting graph forms aninterconnecting web of relational information, which is searchable viaqueries of these relationships.

It is against this background that various embodiments of the presentinvention have been developed.

BRIEF SUMMARY OF THE INVENTION

Accordingly, one embodiment of the present invention is acomputer-implemented method of collaboratively managing anentity-relationship graph, comprising: displaying theentity-relationship graph to a voting user; collecting data on expertstatus of the voting user indicating whether the voting user is anexpert on a given topic; assigning a voting weight to one or morerelationships in said entity-relationship graph in response to an inputfrom the voting user and based on the voting user's expert status; andsorting the relationships in the entity-relationship graph based atleast on said voting weight.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, further comprising thestep of calculating a relationship path between two entities stored insaid entity-relationship graph.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, wherein the relationshippath is displayed on said entity-relationship graph as a chain of nodesand edges.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, wherein the input from thevoting user is represented by an indication of the voting user's opinionabout the relationship.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, further comprising thestep of collapsing said entity-relationship graph by replacing two ormore relationships in the entity-relationship graph with a singlerelationship.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, wherein said second newrelationship represents a modification to said first new relationship.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, further comprising thestep of displaying to an advertiser an ordered list of viewing usersthat have recent activity associated with a predetermined keyword,weighted by an importance weight of the keyword to the advertiser.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, further comprising thestep of displaying to the advertiser a price to display an advertisementto each viewing user on the ordered list of viewing users, said pricebased on a market supply and demand for serving advertisements to saidviewing users.

Another embodiment is the method of collaboratively managing anentity-relationship graph as described above, further comprising thesteps of receiving an input from the voting user indicating that thevoting user would like to be designated as an expert, receivingcredentials from said voting user to substantiate the voting user'sexpert status, assigning a credibility weight to the voting weight fromthe voting user based on the received credentials, and disambiguatingtwo or more relationships based on said credibility weight and saidvoting weight. Yet another embodiment is the method of collaborativelymanaging an entity-relationship graph as described above, furthercomprising the steps of collecting expert data about the voting user'sactivity indicating that the voting user is an expert on a given topic,assigning a credibility weight to the voting weight from the voting userbased on the expert data, and disambiguating two or more relationshipsbased on said credibility weight and said voting weight.

Another embodiment of the present invention is the method describedabove, further comprising displaying the sorted relationships in anupdated version of the entity-relationship graph to one or moreadditional users, and creating a new relationship in theentity-relationship database in response to an input from said one ormore additional users.

Yet another embodiment of the present invention is a computer system forcollaboratively managing an entity-relationship graph. This systemcomprises one or more memories for storing program code, and one or moreprocessors, operatively connected to the one or more memories, forexecuting the stored program code. When the stored program code isexecuted, it causes the system to perform a process comprising the stepsof displaying the entity-relationship graph to a voting user; collectingdata on expert status of the voting user indicating whether the votinguser is an expert on a given topic; assigning a voting weight to one ormore relationships in the entity-relationship graph in response to aninput from the voting user and based on the voting user's expert status;and sorting the relationships in the entity-relationship graph based atleast on the voting weight.

Another embodiment is the computer system as described above, furthercomprising the step of calculating a relationship path between twoentities stored in said entity-relationship graph.

Another embodiment is the computer system as described above, whereinthe relationship path is displayed on said entity-relationship graph asa chain of nodes and edges.

Another embodiment is the computer system as described above, whereinsaid input from said voting user is represented by an indication of thevoting user's opinion about the relationship.

Another embodiment is the computer system as described above, furthercomprising the step of collapsing said entity-relationship graph byreplacing two or more relationships in the entity-relationship graphwith a single relationship.

Another embodiment is the computer system as described above, whereinsaid second new relationship represents a modification to said first newrelationship.

Another embodiment is the computer system as described above, furthercomprising the step of displaying to an advertiser an ordered list ofviewing users that have recent activity associated with a predeterminedkeyword, weighted by an importance weight of the keyword to theadvertiser.

Another embodiment is the computer system as described above, furthercomprising the step of displaying to the advertiser a price to displayan advertisement to each viewing user on the ordered list of viewingusers, said price based on a market supply and demand for servingadvertisements to said viewing users.

Another embodiment is the computer system as described above, furthercomprising the steps of receiving an input from the voting userindicating that the voting user would like to be designated as anexpert, receiving credentials from said voting user to substantiate thevoting user's expert status, assigning a credibility weight to thevoting weight from the voting user based on the received credentials,and disambiguating two or more relationships based on said credibilityweight and said voting weight. Yet another embodiment is the computersystem as described above, further comprising the steps of collectingexpert data about the voting user's activity indicating that the votinguser is an expert on a given topic, assigning a credibility weight tothe voting weight from the voting user based on the expert data, anddisambiguating two or more relationships based on said credibilityweight and said voting weight.

Another embodiment is the computer system as described above, furthercomprising the steps of displaying the sorted relationships in anupdated version of the entity-relationship graph to one or moreadditional users, and creating a new relationship in theentity-relationship graph in response to an input from said one or moreadditional users

Other embodiments of the present invention include systems havingprogram code stored in memory and executed by a processor that cause thesystem to execute the methods described here. Yet other embodiments ofthe present invention include storage media storing program codethereon, which when loaded in a computer system cause the system toexecute the methods described here. The computer systems and storagemedia used to execute the methods of the present invention include thecomputer systems known in the art, including those running variousoperating systems, and include various storage media known in the art,including optical storage, magnetic storage, and the like. Furtherembodiments of the present invention will become apparent from thedetailed description of the invention and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an entity relationship graph with a singlerelationship, in accordance with one embodiment of the presentinvention.

FIG. 2 illustrates a second entity relationship graph with a pluralityof relationships, in accordance with one embodiment of the presentinvention.

FIG. 3 illustrates a third entity relationship graph with a plurality ofrelationships, in accordance with one embodiment of the presentinvention.

FIG. 4 illustrates a fourth entity relationship graph with a pluralityof relationships, in accordance with one embodiment of the presentinvention.

FIG. 5 illustrates a fifth entity relationship graph with a plurality ofrelationships, in accordance with one embodiment of the presentinvention.

FIG. 6 illustrates one embodiment of the disclosed invention, showing alanding page where a user can either view a tutorial, or start to relateor search data.

FIG. 7 illustrates one embodiment of the disclosed invention, showing aneditor (“relate page”).

FIG. 8 illustrates one embodiment of the disclosed invention, showing asearch interface (“search page”), view 1.

FIG. 9 illustrates one embodiment of the disclosed invention, showing asearch page, view 2.

FIG. 10 illustrates one embodiment of the disclosed invention, showing asearch page, view 3.

FIG. 11 illustrates an information management interface, in accordancewith another embodiment of the disclosed invention.

FIG. 12 illustrates a flowchart of a process of one embodiment of thepresent invention.

FIG. 13 illustrates a system according to one embodiment in which thepresent invention may be practiced.

DETAILED DESCRIPTION OF THE INVENTION Definitions

As used throughout the specification and claims, the following conceptsand phrases shall have the below defined meanings and their equivalents.

An entity is defined as anything (person, place, thing, or abstraction)that the user wishes to define in relation to other entities andrepresent as a character string or other electronic representation.Essentially, any word or phrase can become an entity, as well asnumerical values. In addition, electronic files, such as a digitalimage, or other digital sets of information, can also be defined asentities.

A relationship (sometimes called an entity-relationship or entityrelationship) is a statement relating two entities. For example,“Leonardo da Vinci is a painter,” where “Leonardo da Vinci” is oneentity and “painter” is a second entity. In other words, a relationshipis a specific instance of two entities being linked by a particularrelation (defined below). A general example of a relationship would be:

Entity A is linked to Entity B by Relation 1.

If Entity A is “an apple,” Entity B is “fruit,” and Relation 1 is “isa,” then this relationship can more concisely and clearly be stated as“An apple is a fruit.”

A relation is the part of the entity relationship statement that denotesthe relation between the entities. For example, “is a” is the relationin the entity relationship “Leonardo da Vinci is a painter.” A relationcan be any link that can be made between two or more entities that theuser wishes to impart a certain meaning. Other examples include “is a”,“has a”, “is located in,” and “is a member of,” or more specificrelations like “is a citizen of,” “was written by,” and “is sold by”.

An entity-relationship database comprises one or more entityrelationships or equivalents, as described in the specification. Alsocalled an entity relationship database. An entity-relationship databaseis a computer representation of an information model.

An entity-relationship graph is a graphical representation of anentity-relationship database. For example, FIGS. 1-5. A graph is amathematical construct that comprises nodes connected by edges. Alsocalled an entity relationship graph.

A relationship path is a path comprising a set of connected nodes andedges that connect two or more entities.

A voting weight is a weight assigned to a relationship by a voting userthat represents the user's position or opinion concerning therelationship, which can be indicated as confirms, disputes, likes,dislikes, is a positive indicator, is a negative indicator orequivalents.

A position value is the relative importance, validity, approval level,preference, or other pre-determined metric of one relationship relativeto another based on weights assigned by voting users, experts, orgeneral users.

An expert is a user who has special expertise in a subject area.

An expert status designates a given user's expertise in a give subjectarea indicating that a user is an expert in a given subject area.

A credential is a piece of evidence that justifies an expert havingexpert status on a given topic.

A credibility weight is a weight assigned to a voting user's votingweight, based on the voting user's expert status, as supported by one ormore credentials or as supposed by the voting user's activity in a givensubject area or by some other means and the like. For example, a numberbetween 0 and 1.

Disambiguating comprises the action of modifying the entity-relationshipdatabase to reduce or eliminate ambiguities, contradictions or apparentcontradictions. Disambiguating also comprises the action of modifyingthe entity-relationship database to alter any weights, such as votingweights or credibility weights, assigned to relationships, in such a waythat affects the entity-relationship graph or its representations. Inone embodiment, disambiguating refers to a step of differentiatingbetween two or more relationships that otherwise appear similar or havesimilar meanings, based on a predefined weight assigned to therelationships, including but not limited to the relationships' positionvalue.

Collapsing comprises replacing two or more relations in anentity-relationship database with a single relationship based on thedisambiguation. For example, the three relationships “Leonardo is apainter” and “Leonardo da Vinci is a painter” and “da Vinci is apainter” are replaced with the single relationship “Leonardo da Vinci isa painter.” The relationships may be replaced in the database, or in thegraphical representation only and not in the backend database.

An advertisement is information displayed to a viewing user paid for byan advertiser to advertise goods or services.

A keyword is a word that an advertiser links to an advertisement to bedisplayed when the word is associated with a viewing user.

An importance weight of the keyword is a weight corresponding to a valuethat the advertiser places on that keyword. For example, a numberbetween 0 and 100%.

Introduction

One embodiment of the present invention is an easy-to-use, web-based,“schema neutral” database system that allows users and organizations toorganically model, store, and access their information in exactly theway that they want to. In this context, “organically” means “in aniterative and evolutionary manner”. Users of this system are not “lockeddown” into any particular schema while their data set and data model areimmature. Rather, users are encouraged by the system to grow and exploretheir information domain in an intuitive way.

These characteristics are enabled by a number of features which will bedescribed below; however, the flexible nature is enabled by employing agraph-based structure, based upon linking entities and relations intorelationships, as defined above.

A constantly evolving schema is one result of the present invention. Thesystem and associated applications are designed in a way that allowsconstant changes to the schema. In order to manage the challenge of manypeople editing a schema and most likely adding different and competingrelationships, the system employs a “voting system” which gives highervisibility to more popular and “active” relationships. Also, byanalyzing commonality in links between certain entities, the systemsuggests the appropriate relations to users. For example, if someoneadds the relationship “Steve Jobs—worked at—Apple”, and then anotheruser adds “Steve Jobs—was employed by—Apple,” the system is able torecognize that “worked at” and “was employed by” are nearly equivalentrelations and suggest that the user use the more popular one (though theuser will always have the choice to use whatever wording he/she wants).

Over time, certain types of entities will have developed a common set ofproperties, and they can be suggested to the user. So, for example, if auser adds a new recording artist, the system suggests the most commonproperties (i.e. relations) associated with recording artists. The useris never, however, limited to a fixed set of properties.

Relationships according to the present invention use natural, everydaylanguage, rather than “database language” (“Steve Jobs worked at Apple.”vs. “Steve Jobs→Employer: Apple”). This assists with developinghuman-readable text from the relationships stored in the system. It alsomakes for a more intuitive way of building information models. Users canstart with existing text about a subject and start building a basicinformation model by extracting simple relationships from the text.

As described in more detail below, the system has a voting system usedto promote (or demote) relationships in importance. The system candisplay relationships in priority or popularity order. Also, the systemdistinguishes between a user promoting a relationship because he/shefinds it interesting vs. promoting it because he/she confirms it to betrue. In the disclosed system, certain users could be identified asexperts on certain topics, and therefore their confirmation of thevalidity of a relationship would give more value in promoting theveracity of a relationship.

Illustrative Examples of Entity Relationships

One way to illustrate a method of organizing information as described inthis application is to provide examples. Let's start with another simplerelationship as shown in the entity relationship graph of FIG. 1.

This statement is a generally known statement expressed in the formdescribed above. “Leonardo da Vinci” is our first entity (in this case,a human entity). “Painter” is our second entity, and these two entitiesare related by the relation “was a” to create the relationship “Leonardoda Vinci was a Painter.”

Now let's build on this single relationship. What are some other thingsa user can say about Leonardo da Vinci? Some examples are shown in FIG.2.

As one can see, in addition to being a painter, he was also a sculptor,was born in year 1452 in Vinci, and he lived in Florence. We arebeginning to build up the basic biographical information about Leonardoda Vinci. Let's go a little further as shown in FIG. 3.

Now in addition to the biographical information about Leonardo da Vinci,we have added some information about where Vinci and Florence arelocated. We now have an indirect link between Vinci and Florence, and weknow they are both located in Tuscany, which is located in Italy. Let'sgo a step further as shown in FIG. 4.

Now we have added a second person, Verrocchio, who is related toLeonardo da Vinci by the fact that Leonardo worked in his workshop andhe also influenced Leonardo (according to this information model). Weknow some additional info about Verrocchio, namely that he was also apainter and sculptor, and that he was born in year 1435. We also haveadded the additional fact that the years 1452 and 1435 are in the15^(th) Century. This is interesting because at this point we couldquery our information model to find out all the painters born in the15^(th) century. At this point our information model is very incomplete,and the result would be only two painters, but it is important that thispossibility now exists. Let's go one step further as shown in FIG. 5.

Now we have added several other players to the picture, including apainter who Leonardo influences, a painting that Leonardo painted, and achurch where the painting is located. We also find out that Leonardoalso lived in Milan, which happens to also be the place where the churchwhere his painting is located. Let's go one step further as shown inFIG. 6.

Now we have added some additional information about Leonardo's painting,the Last Supper, as well as another painter/sculptor, Michelangelo, whohappens to also have done some paintings located in Italy. At this pointit starts to be very difficult to legibly portray this entireinformation model on a single sheet of letter-sized paper, but acomputer can easily store all this information within a small datavolume.

The purpose of this example is to show how users could quickly andeasily create an interconnected web of related information on anyimaginable subject. The technical details of how the user will enter theinformation, how the information will be stored, and how it will beaccessed are described below. The example is intended to demonstratethat as the volume and completeness of this interconnected informationis increased, the value of the “information model” increases. After acertain critical mass is achieved, the information model becomes auseful reference for other users interested in similar subjects.

A representative example of a useful search query that a user couldperform using the type of information described above would be, if youwanted to search for a list of Italian Renaissance painters, you couldeasily do that by searching for all the people linked to “is a painter,”“lived in . . . Italy,” and “was born in . . . ” a certain range ofyears corresponding to the Renaissance movement. The methods and searchtechnology described below will help the user to do that by typing in asingle phrase, or maybe a small series of search terms. By contrast, forWIKIPEDIA to have this capability, a human would have to “manually”create an article with a list of Italian Renaissance painters with linksto the articles about them.

The method and process for making these kinds of relationships throughthe World Wide Web along with a set of related features that allow andpromote “crowd-sourcing” or community development of information models,resulting in a system for organic development of useful informationmodels by users and organizations with little or no informationtechnology expertise, form a novel structure and set of processes usefulfor managing information.

Description of One Embodiment of the User Interface

Let us now walk through a user experience of the present invention.First, a user sees a screen as shown in FIG. 6. After clicking “Relate,”a user is taken to a screen as shown in FIG. 7. After clicking on“Search,” a user is taken to a screen as shown in FIG. 8. FIG. 9 showswhat the search screen should look like after the user has clicked the“+” button. The highlighting around the “And/Or” box is to remind theuser to fill out whether the 2nd query refines or expands the search.FIG. 10 shows what the search screen should look like after the user hasmade the “And/Or” selection.

Basic Operations on Relationships

The disclosed invention contains a process for adding relationships,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. User enters relationship comprising fromEntity, relation, and        toEntity and clicks an “Add” button, as shown in element 1102 of        FIG. 11.    -   2. System determines if fromEntity, relation, and toEntity are        already in the Entity table.        -   If YES, then retrieve entity_id.        -   If NO, then add to Entity table.    -   3. System stores entity_ids from relationship in        relationships_id table and entity_names from relationship in        relationships_names table.    -   4. System displays relationship in first row of relationships        table. The relationship may be shown to a user in the table        interface 1112. Previously entered relationships are shifted        down a row accordingly.

The disclosed invention contains a process for modifying relationships,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. User selects a relationship that he or she wants to modify        from Entity table. This could be done by using a combo box as in        interface element 1104.    -   2. The selected relationship is displayed in the combo boxes        “From Entity”, “Relation”, and “To Entity.” This could be shown        to the user as in interface 1100.    -   3. User modifies any of the relationship components (From        Entity, Relation, or ToEntity) and clicks “Add” button, as shown        in interface element 1102.    -   4. System determines if modified fromEntity, relation, and        toEntity are already in the Entity table.    -   5. System determines if fromEntity, relation, and toEntity are        already in the Entity table.        -   If YES, then retrieve entity_id.        -   If NO, then add to Entity table.    -   6. System replaces original relationship with modified        relationship in relationships_id and relationships_names tables.    -   7. System displays modified relationship in relationships table        1112, where original relationship was previously displayed.

The disclosed invention contains a process for deleting relationships,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. User highlights one or more relationships in the relationship        table (in user interface) and clicks “Delete Selected” button,        as shown in interface element 1114.    -   2. System deleted the highlighted relationships from the        relationship_ids and relationship_names tables.    -   3. Deleted relationships are removed from the relationships        table 1112 in the user interface.

The disclosed invention contains a process for sorting relationships by“from entity”, “relation”, or “to entity”, through an interface accessedfrom the World Wide Web, comprising the following steps:

-   -   1. User clicks on “From Entity” header in the relationships        table in user interface.    -   2. System sorts the relationships in the relationship table in        alphabetical order by “From Entity.”    -   Similarly:    -   1. User clicks on “Relation” header in the relationships table        in user interface.    -   2. System sorts the relationships in the relationship table in        alphabetical order by “Relation.”    -   Similarly:    -   1. User clicks on “To Entity” header in the relationships table        in user interface.    -   2. System sorts the relationships in the relationship table in        alphabetical order by “To Entity.”

The disclosed invention contains a process for reversing entries in the“From Entities” and “To Entity” fields, through an interface accessedfrom the World Wide Web, comprising the following steps:

-   -   1. From the “editor” user interface, the user clicks the        “reverse” button.    -   2. The system replaces the entry in the “To Entity” field with        the entry in the “From Entity” field, and vice versa.

The disclosed invention contains a process for saving or committingchanges to the entity-relationship database, through an interfaceaccessed from the World Wide Web, comprising the following steps:

-   -   1. As the user makes additions or modifications to the        entity-relationship database, the system tracks a history of        these changes.    -   2. If the user clicks the button “Save Changes,” then the system        “commits” these changes to the database, or in other words        resets the history log of changes since the last save.    -   3. If the user attempts to exit the system or has been inactive        in the system for 10 minutes, then the system displays a dialog        that says “You have unsaved changes to the information model.        Would you like to commit these changes now?” followed by a        summary of the changes, and a “Yes” and “No” button.    -   4. If the user selects “Yes” then the system commits the changes        as in step 2. If the user selects “No” or does not respond        within 5 minutes, then the history of changes is saved to the        user's account. The next time the user logs into the system, the        system will display a dialog saying “You have unsaved changes        from your last session? Would you like to commit these changes?”        followed by a summary of the changes, and a “Yes” and “No”        button.    -   5. If the user selects “Yes” then the system commits the changes        as in step 2. If the user selects “No” then the system reverts        the changes made during the user's last session. If any of the        changes affects changes already made by other users, then those        revisions are disregarded. If the user does not make any choice        after 5 minutes, then the history of changes is retained, and        the dialog is re-displayed during the user's next period of        activity.

The disclosed invention contains a process for organizing and displayinga set of relationships into text and allowing a user to rearrange andedit the relationships in the text, through an interface accessed fromthe World Wide Web, comprising the following steps:

-   -   1. User selects from a menu bar a menu item to “Compose text”.    -   2. System displays an interface, where the user can select        relationships for inclusion in the text.    -   3. When the user is finished selecting relationships, he or she        clicks on a “next” button to proceed to the next step.    -   4. System displays an interface for arranging the relationships        into text. In one panel is a list of the selected relationships.        In a second panel, is a text editor. The interface allows the        user to drag-and-drop relationships from one panel into a        location in the text editor of the users' choice.    -   5. User drags desired relationships into the text editor panel        into the desired positions. The user can also rearrange        relationships that have already been dropped into the text        editor, using a similar drag and drop method.    -   6. The interface also allows the user to edit the relationships        as he or she desires. For example, the user can combine two        relationships into a compound sentence, or form relationships        into prepositional phrases.    -   7. Although the user may edit the relationship significantly,        the system will track the fragments of text according to their        original entity and relationship IDs. For example, if the name        “Steve Jobs” is edited to “he”, this instance of the word “he”        will be tagged with the entity ID for “Steve Jobs”. Likewise, if        the relationship “Steve Jobs works at Apple” is edited to become        “He has worked at the Apple Company for a total of 23 years,”        this sentence will be tagged with the relationship ID for the        original relationship from which it was composed.    -   8. When the user is finished arranging and editing his or her        text, he or she clicks on a “save” or “preview” button.    -   9. Clicking either button will result in the system displaying        the final form of the text, as it will be viewed by other users.        Clicking “save” will automatically save the text, whereas        clicking “preview” will allow the user an opportunity to make        further edits before saving by clicking an “edit” button.

Searching Relationships

The disclosed invention contains a process for searching for entities,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. User types or selects an entity from the Search combo box        802.    -   2. User also selects whether he/she wants to limit search to        either “From Entities”, “To Entities” or “Both”. This could be        presented to the user as radio buttons 804.    -   3. System returns a table containing the results of the search.        These results can be shown to the user in interface 800 via the        table displayed in interface element 806.        -   If only “From Entity” was selected, then the results will            contain all the relationships where the search term is            contained in the “From Entity”.        -   If only “To Entity” was selected, then the results will            contain all the relationships where the search term is            contained in the “To Entity”.        -   If “Both” was selected, then the results will contain all            the relationships that have the search term in either the            “From Entity” or “To Entity”.

The disclosed invention contains a process for searching for a relation,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. User types or selects a relation from the Search combo box.    -   2. System returns a table containing all the relationships where        the relation contains the search term.

The disclosed invention contains a process for modifying relationshipsfrom search results, through an interface accessed from the World WideWeb, comprising the following steps:

-   -   1. User double-clicks on any of the three relationship        components (fromEntity, relation, toEntity) from the table of        results 806 of FIG. 8.    -   2. System displays an editable field for editing that component        of the relationship.    -   3. System follows the process for modifying a relationship, as        described above.

The disclosed invention contains a process for refining and organizingsearch results through an interface accessed from the World Wide Web.Once a user enters a search term or search terms and the system displaysresults, the user may wish to organize, filter, and refine these searchresults into a form more useful for him or her. This process iscomprised of the following steps:

-   -   1. User enters a search term or set of search terms and clicks        “search”.    -   2. The system displays a set of search results (e.g.        relationships) in a default sorted order (default can be set by        the user).    -   3. The user can then perform any of the following operations to        refine and organize the search results:        -   a. Right-click on a relationship and select “Remove from            Search Results”. The system then removes this relationship            from the search results, displaying a refined set of            relationships.        -   b. Drag a relationship to a different position in the search            results. The system saves this new ordering, and it will be            reflected even when a user navigates to another page in the            search results and later returns to the original page.        -   c. Filter the search results to contain only those            relationships containing a particular search keyword.        -   d. Filter the search result to remove all relationships that            contain a particular keyword.        -   e. Filter search results to show only relationships that            have a certain “tag” associated with them.    -   4. Finally, the system allows the user to save or export the        refined and reorganized search results, so that he or she can        return to them at a later date, or use them in some form outside        of the system.

Managing Categories

The disclosed invention contains a process for adding a “category” orgrouping of entities, through an interface accessed from the World WideWeb, comprising the following steps:

-   -   1. User adds a new relationship with the following properties:        -   relation=“is a”        -   toEntity=“category” or “Category” (i.e. this should not be            case sensitive).    -   2. System determines if category already exists by searching the        fromEntity from the category_singular and category_plural fields        of the categories table.        -   If YES, then system displays a pop-up dialog that says            “Category already exists.”        -   If NO, then system displays a pop-up dialog that says:        -   “You are attempting to add a category. Please indicate the            singular and plural forms.”        -   The dialog has an entry field for entering the singular and            plural forms of the category title, and the system should            make a reasonable guess of whether the user has entered the            singular form or plural form by searching for an “s” at the            end of the string. (e.g. if user entered “artist is a            category”, then the singular field would be populated with            the word “artist”, but is the user had entered “artists is a            category”, then the plural field would be populated.)    -   3. System adds the singular and plural forms of the category to        the categories table.    -   4. System creates a new table named after the plural form of the        category with fields entity_id and entity_name.    -   5. System adds the plural form of the category to the category        drop-down lists below “From Entity” and “To Entity” combo boxes.

The disclosed invention contains a process for filtering entities by“category” or grouping of entities, through an interface accessed fromthe World Wide Web, comprising the following steps:

-   -   1. User selects from a category drop-down box (either under        “From Entity” combo box or “To Entity” combo box) a category.    -   2. System filters the appropriate combo box to contain only        entities that are members of that category.

The disclosed invention contains a process for adding an entity to a“category” or grouping of entities, through an interface accessed fromthe World Wide Web, comprising the following steps:

-   -   1. User adds a new relationship, where the relation is one of        the relations that has been specified as a categorizing relation        (for example, in some embodiments “is a,” “is an,” “was a,” “was        an” are specified as categorizing relations).    -   2. System determines if toEntity is in the category_singular        field of the Categories table.        -   If YES, then entity_id and entity_name of fromEntity are            added to the table with the appropriate category name.        -   If NO, then system displays a dialog saying, “Do you want to            add [toEntity] as a new category of entities?”            -   If user selects YES, then execute process for adding a                new category.            -   If user selects NO, then execute normal process for                adding a new relationship.

Exporting and Importing Data

The disclosed invention contains a process for exporting search resultsto a comma-delimited file, through an interface accessed from the WorldWide Web, comprising the following steps:

-   -   1. User clicks on “Export Search Results” button 808 of FIG. 8.    -   2. System generates the results as a comma-separated file (CSV)        and prompts the user to save to his/her computer.

The disclosed invention contains a process for importing relationshipsfrom a comma-delimited file, through an interface accessed from theWorld Wide Web, comprising the following steps:

-   -   1. User clicks on “Import Relationships” button 702 of FIG. 7.    -   2. System displays a dialog for uploading a CSV file that        contains relationships in the format “from Entity, relation,        toEntity”.    -   3. System reads each line in the uploaded file, and if the line        has the correct format (i.e. three strings separated by commas),        then the line is added as a new relationship according to the        process described above.

The disclosed invention contains a process for creating relationshipsfrom a spreadsheet with headers, through an interface accessed from theWorld Wide Web, comprising the following steps:

-   -   1. User clicks on “Import Relationships” button 702 of FIG. 7.    -   2. System displays a dialog for user to select the file from        which he/she would like to import relationships.    -   3. If the file is a spreadsheet containing headers, then an        import wizard is activated.    -   4. The import wizard then guides the user through each column of        data, pre-populating the “From Entity”, “Relation”, and “To        Entity” fields based on the column and row headers and cell        contents.    -   5. The user is asked by the system to confirm the proper        interpretation of the headers and is given the opportunity to        modify them as desired.    -   6. When the user has finished going through and confirming each        header's proper interpretation, the system then creates the        chosen relationships based on the contents of the spreadsheet.

Discovering Relationships Automatically

The disclosed invention contains a process for discovering relationshipsfrom a text document, through an interface accessed from the World WideWeb, comprising the following steps:

-   -   1. User clicks “Extract Relationships” button.    -   2. System displays a dialog for the user to select whether he        would like to paste text into the website interface or load text        from a text document file (.doc, .pdf, .txt, etc.).        -   If user chooses “paste text”, then an input box is displayed            for the user to paste in the text from which he/she would            like to extract relationships.        -   If user chooses “load text from file,” a dialog is displayed            for the user to choose the file from which he/she wishes to            extract relationships.    -   3. Once the desired text has been loaded into the system, the        system will analyze the text to find matches to entities and        relations that already exist in the system.    -   4. For words and phrases that were not found to exist in the        system, a dialog will be displayed where the user can identify        if each word or phrase should be added as:        -   A) A new entity        -   B) A new relation        -   Or the user can select “Do not import” for words or phrases            that the user does not wish to be used in the system.    -   5. The system displays all of the relationships that are created        from the auto-matching and user-inputted items.    -   6. The user confirms that these relationships should be added to        the system by checking (or unchecking) checkboxes next to the        relationships.

Managing Hierarchies

The disclosed invention contains a process for arranging entities intohierarchies, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. User clicks “Add new hierarchy” button.    -   2. System displays a dialog for the user to enter a name for the        new hierarchy.    -   3. System displays an interface for adding entities to the newly        created hierarchies. The interface has two panels. On the left        the newly created hierarchy is shown. On the right, a list of        the available entities to add to the hierarchy is shown, along        with a category drop-down list to filter the entities, and a        search bar (to filter by search query for entities). Also, there        is a button to add new entities.    -   4. User selects entities from the right panel to add to the        newly created hierarchy.    -   5. After entity is selected, system displays it as part of        hierarchy on the left panel, along with a button to add a        “child” to the entity in the hierarchy. System also displays        buttons to move entities in the hierarchy “up” or “down” one        level in the hierarchy. If entity is already at the highest or        lowest level in the hierarchy, then the respective button will        be displayed as inactive. Lastly, the system will also display a        button to delete the entity from the hierarchy.

The disclosed invention contains a process for navigating throughhierarchies, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. System displays a hierarchy of entities (as created in        process above) with right-facing triangles for those entities        which have children entities.    -   2. User clicks on the right-facing triangle for an entity that        has children to expand the hierarchy view for the selected        entity.    -   3. System changes right-facing triangle to a down-facing        triangle, indicating that the selected entity's children        entities are displayed. System also inserts a list of the        selected entity's children. The presence of the selected        entity's children will be indicated by a right-facing triangle.        System displays in a panel to the right of the hierarchy of        entities a list of relationships that are connected to the        selected entity.    -   4. User selects one of the children of the previously selected        entity from the expanded hierarchy view.    -   5. System displays in a panel to the right of the hierarchy of        entities a list of relationships that are connected to the        selected child entity.    -   6. User clicks on the down-facing triangle for the entity to        collapse the display of that entity's children.    -   7. System hides the children of the selected entity, changes the        down-facing triangle to a right-facing triangle, and changes the        information in the right panel to a list of relationships        related to the originally selected entity.

Numerical Inputs

The disclosed invention contains a process for detecting units ofmeasurement indicated in the entity field and converting between relatedunits, through an interface accessed from the World Wide Web, comprisingthe following steps:

-   -   1. User enters into a “From Entity” or “To Entity” field a        numerical value followed by a text string. For example, “10 kg”        or “2 m”.    -   2. System checks the text string against a table of text strings        representing units.    -   3. If the system detects a match, then the system displays a        dialog that says “Do you want to enter the [From Entity/To        Entity] as a measurement unit?” followed by a “Yes” or “No”        button.    -   4. If the user selects “Yes”, then the system displays the full        name and type of measurement unit that it has interpreted from        the user's input and asks the user to confirm the        interpretation. For example, if “2 m” was the user's entry, then        the system would display “2 meters (length)”. If the user        selects “No”, then the system records the entity as a character        string exactly as the user entered it.    -   5. If the user selected “Yes” and the user confirms the        interpretation, then the entity is saved in the system along        with an additional property indicating that the entity contains        a measurement unit.

The disclosed invention contains a process for searching between anumerical range of numerical values, through an interface accessed fromthe World Wide Web, comprising the following steps:

-   -   1. User clicks “Search Numerical Range” button.    -   2. System displays a search interface similar to the one        described above, but between the “relation” and “To Entity”        fields there is a drop-down menu to select the operators “=”,        “<”, or “>”.    -   3. If the user selects “<” the system displays an additional        button that says “But>”. If the user selects “>” the system        displays an additional button that says “But<”.    -   4. If the user clicks the “But>” or “But<” button then the        system displays an additional entry field to the right of the        button.    -   5. The system then evaluates the search criteria based on the        range selected by the user and displays the results similarly in        a process similar to the one described above for other search        queries.

The disclosed invention contains a process for generating suggestedsearch queries, based on the user's input, through an interface accessedfrom the World Wide Web, comprising the following steps:

-   -   1. User enters a search term which does not exactly match any of        the entities in the Entities table, but exhibits a high degree        of similarity to one or more entities.    -   2. System displays the text “Did you mean” followed by the        entity with the highest degree of similarity to the search term        entered by the user, followed by a question mark. The suggested        entity should contain a hyperlink.    -   3. If the user clicks on the hyperlink of the suggested entity,        then the system performs a search query using the suggested        entity.    -   4. The system displays the search results in the user interface.

Voting, Disambiguating and Collapsing

In some embodiments of the disclosed invention, the invention contains aprocess for a voting user to indicate that a particular relationship isvalid or “confirmed,” thereby generating a voting weight (which can be apositive or negative position value as described below), through aninterface accessed from the World Wide Web, comprising the followingsteps:

-   -   1. In such embodiments of this invention, the system will        display next to each displayed relationship a “Confirm” button.    -   2. If user clicks on the “Confirm” button next to a particular        relationship, then this is interpreted by the system as the user        indicating that he or she believes this relationship is valid or        “confirmed” by him/her. The system therefore stores the user's        ID in a “confirmed by” property associated with that particular        relationship.

In some embodiments of the disclosed invention, the invention contains aprocess for a voting user to indicate that they are interested in aparticular relationship or entity, thereby also generating a votingweight, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. In such embodiments of this invention, the system will        display next to each displayed relationship or entity a “Like”        or “Follow” button.    -   2. If user clicks on the “Like” or “Follow” button next to a        particular relationship or entity, then this is interpreted by        the system as the user indicating that he or she is interested        in this relationship or entity. The system therefore stores the        user's ID in a “liked by” or “followed by” property associated        with that particular relationship or entity.

In some embodiments of the disclosed invention, the invention contains aprocess for sorting relationships by the number of times “confirmed” orthe number of times “liked/followed,” or some combination of these twonumbers, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. In such embodiments of this invention, the system will        display next to the relationship table, an option to sort the        relationships by number of times “confirmed” or by number of        times “liked/followed.”    -   2. If the user selects the option “Sort by Confirmations”, the        system determines the number of times each relationship has been        “confirmed” and then re-displays the relationships in order from        most confirmations to least confirmations. If the user selects        the option “Sort by Likes/Follows”, the system determines the        number of times each relationship has been “liked” or “followed”        and then re-displays the relationships in order from most number        of “likes/follows” to least number of “likes/follows”. In some        embodiments of this invention, the system will display an option        to “Sort by Popularity.” With this option, the system uses a        combination of the above two metrics in determining the        popularity of each relationship. In one embodiment, a subset of        the relationships may be selected based on said voting weights.        For instance, a viewing user may want to select 25 relationships        above a certain criteria value of voting weights.

The disclosed invention contains a process for users to indicate thatrelations are equivalent or highly similar in meaning, through aninterface accessed from the World Wide Web, resulting in a system thatcan group together disparate relationships of equivalent or highlysimilar meanings, comprising the following steps:

-   -   1. User selects two or more relationships (using control or        shift to select multiple relationships).    -   2. User right-clicks on any of the selected relationships.    -   3. System displays a dialog box with an option to “Mark selected        as highly similar or equivalent.”    -   4. System displays a pop-up dialog box that says:    -   5. “You have chosen to mark the following relationships as being        highly similar or equivalent in meaning. This action will link        these relationships and under normal circumstances, only the        most popular one will be displayed. Which of these relationships        do you feel is the preferred one?”    -   6. This will be followed by a list of the selected relationships        with a radio button style selection and buttons to confirm or        cancel the selection.    -   7. User selects the preferred relationship and clicks confirm        (or cancel).    -   8. System closes the dialog box and stores the action in the        database. The action is stored as an association between the        selected relationships with one relationship identified as the        preferred relationship. Other ancillary information, such as the        user ID of the user who created the association and the time and        date of the association, are also stored.

The disclosed invention contains a process for users to identifyentities and relations that have an equivalent or highly similar meaningin another language (also indicated by the user), through an interfaceaccessed from the World Wide Web, resulting in a system that can grouptogether disparate text strings of equivalent or highly similar meaningsand the associated language to which they belong, comprising thefollowing steps:

-   -   1. User selects two or more relationships or entities (using        control or shift to select multiple relationships).    -   2. User right-clicks on any of the selected relationships or        entities.    -   3. System displays a dialog box with an option to “Mark selected        as translations.”    -   4. System displays a pop-up dialog box that says:    -   5. “You have chosen to mark the following relationships or        entities as having highly similar or equivalent meanings in two        or more languages. This action will link these relationships or        entities as translations. Please confirm or identify the        language of each of the relationships or entities below.”    -   6. This will be followed by a list of the selected relationships        or entities with a combobox to identify the language of the        relationships or entities. The system will attempt to detect the        language, based on a third-party language detection algorithm.        If the system is unable to detect the language, the combobox        will be set to “Choose language.”    -   7. User adjusts or identifies the languages of the displayed        relationships or entities and clicks “confirm” (or “cancel” to        cancel the action).    -   8. System closes the dialog box and stores the action in the        database. The action is stored as a translation association        between the selected relationships or entities with the        identified language of the relationships or entities stored as        well. Other ancillary information, such as the user ID of the        user who created the association and the time and date of the        association, are also stored.

In some embodiments of the disclosed invention, the invention contains aprocess for disambiguating the entity-relationship database to reduce oreliminate ambiguities, contradictions or apparent contradictions.Disambiguating can also include the action of modifying theentity-relationship database to alter any weights, such as votingweights or credibility weights, assigned to relations, in such a waythat affects the entity-relationship graph or its representations.

In some embodiments of the disclosed invention, the invention contains aprocess for collapsing two or more relations in an entity-relationshipdatabase into a single relation based on the disambiguation. Forexample, the three relations “Leonardo is a painter” and “Leonardo daVinci is a painter” and “da Vinci is a painter” are replaced with thesingle relation “Leonardo da Vinci is a painter.” In one embodiment, thethree relationships are all stored in the database, but only onerelationship is displayed to the user, along with an indication thatalternative versions of the relationship exist.

Entity Relationship Graph or “Graph View”

The disclosed invention contains a process for viewing relationships ina graph representation, known as an entity relationship graph, alsoknown as “graph view,” through an interface accessed from the World WideWeb, comprising the following steps:

-   -   1. User clicks on “View as graph” button 704 of FIG. 7.    -   2. System displays the relationships as a graph, where entities        are enclosed in a circle or other shape, and the relations are        written along lines connecting to other entities.

The disclosed invention contains a process for zooming in or out in theentity relationship graph, panning left, right, up, or down, andcentering on a particular entity, through an interface accessed from theWorld Wide Web, comprising the following steps:

-   -   1. When in “graph view,” the system displays a graph        representation of the entity-relationship database in an        interface to zoom and pan the entity relationship graph.    -   2. If user selects “zoom out”, then zoom out, modifying the size        of the shapes and text, and displaying additional relationships.    -   3. If user selects “zoom in”, then zoom in, modifying the size        of the shapes and text and displaying fewer relationships.    -   4. If user selects “pan up”, then pan the graph up.    -   5. If user selects “pan down”, then pan the graph down.    -   6. If user selects “pan left”, then pan the graph to the left.    -   7. If user selects “pan right”, then pan the graph to the right.

The disclosed invention contains a process for toggling between “graphview” and “table view,” through an interface accessed from the WorldWide Web, comprising the following steps:

-   -   1. When the system is in “graph view” mode, the user        right-clicks on a particular entity or relation and selects from        the menu “switch to table view.”    -   2. The system performs a query on the selected entity/relation        which results in a list of the relationships in which the        entity/relation is a member and displays the list in a table        format.    -   3. When the system is in “table view,” the user right-clicks on        a particular entity or relation and selects from the menu        “switch to graph view.”    -   4. The system displays the graph representation of the        entity/relation, with all the entities/relations connected to        the selected entity/relation, and the selected entity/relation        at the center of the graph.

The disclosed invention contains a process for navigating “forward” and“backward” through “entity links” in an entity relationship graph havinga “hybrid view” showing both graphical and non-graphical representationof the entity-relationship database, through an interface accessed fromthe World Wide Web, comprising the following steps:

-   -   1. User selects “hybrid view” from either the editor or the        search results screen.    -   2. The system displays the same set of relationships as shown in        the previous view, but in the “hybrid view” format.    -   3. If the user wants to navigate “forward” in the relationship        graph, he or she selects one of the right arrows shown after        each entity.    -   4. The system then displays all of the relationships where the        “From Entity” is the selected entity (i.e. the entity next to        the right arrow that was clicked).    -   5. If the user wants to navigate “backward” in the relationship        graph, he or she selects one of the left arrows shown before the        “From Entity”.    -   6. The system then displays all of the relationships where the        “To Entity” is the selected entity (i.e. the entity next to left        arrow that was clicks).    -   7. In this way, the user can continue navigating “forward” or        “backward” through as many different entities as desired.

Entity Relationship Paths

The disclosed invention contains a process for determining and listingthe entity relationship paths (also known as “routes”) of connectionsbetween any two given entities, through an interface accessed from theWorld Wide Web, comprising the following steps:

-   -   1. The user selects two particular entities (holding the control        key to select multiple entities), then right clicks on either of        the two selected entities, and finally selects from the menu        “Connections between entities.”    -   2. The system then calculates the routes of connections between        the two entities (i.e. the paths of entities/relations        connecting the two entities). This process should time-out after        it has reached 1000 routes or 10 seconds, whichever comes first.    -   3. The system then sorts the routes from least number of        entities/relations in the route to most number of        entities/relations in the route and displays them to the user        interface in that order.

Custom Views

The disclosed invention contains a process for allowing the user tocreate “views,” which are custom displays of specific relationships,created through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. The user clicks on the “Create View” button.    -   2. The system displays a blank “canvas” and a “palette”, which        is a group of controls/widgets that the user can “drag and drop”        onto the canvas.    -   3. The palette has controls, such as “table view”, “graph view”,        “hierarchy tree”, “search bar,” and other widgets that provide        similar functionalities to those described in this document.        When the user selects any of these controls/widgets and drags        them onto the canvas, a “wizard” is displayed by the system,        which guides the user through the process of identifying which        information should be displayed in the control/widget.    -   4. When the wizard is displayed, the user selects which        information should be displayed by the control/widget. For        example, if the user would like the widget to display in table        view all of the relationships containing a certain entity, the        user would choose from a drop-down “show entity” and type in the        entity name, and then select “show all relationships”.    -   5. The system will also provide the capability for the user to        reposition and resize the controls/widgets that are dropped onto        the canvas, in order for the user to achieve the desired layout.    -   6. Once the user has completed the design of the custom view, he        or she can save the view by clicking the “save view” button.

Tagging Relationships

The disclosed invention contains a process for “tagging” relationshipsor entities, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. User types a string into combobox next to a relationship or        entity, marked “Add Tag,” and presses enter.    -   2. System stores the string (e.g. a word or phrase) into a        database with the associated relationship ID or entity ID, as        applicable.    -   3. If the string entered by the user is a valid username for a        user in the system, then the system also stores the user ID of        the tagged user.    -   4. In a separate interface, there is a combo box or list of        tags. The user selects a specific tag from either the combo box        or list of tags.    -   5. The system displays a list of relationships or entities that        have been tagged with the selected tag.

Advertisements

The disclosed invention contains a process for displaying advertisementsbased on a user's activity in the system. The purpose of this process isto allow advertisers, both large and small, to target ads to specificusers, based on their recent activity, which likely is a reflection ofthe users' current interests. At the same time, the process is designedto protect the privacy of the users. For example, it does not requirethe direct sharing of the names, email addresses, location, or even theunique ID number of the users with the advertisers. Rather, the systemshares aggregate statistics concerning the activity of users of thesystem. By “activity” we mean the following set of actions that a usercan perform in the system that involve “interacting” with entities,including, but not limited to:

-   -   1. Entering a search term containing an entity    -   2. Creating a relationship containing an entity    -   3. Confirming a relationship containing an entity    -   4. Disputing a relationship containing an entity    -   5. Following an entity    -   6. Viewing an entity's page    -   7. Viewing a relationship's page containing an entity

For each of these actions, the system should store a record of theaction, the user ID of the user that performed the action, the entity IDof the entity it was performed on, and the date and time of the action.These records are stored in an “actions” table, an example of which isshown in Table 1.

TABLE 1 ID User ID Entity ID Action ID Date 1 1 3 1 10/09/2011 09:21:162 1 6 7 11/09/2011 15:40:21 3 2 2 5 11/09/2011 11:10:25 4 3 8 312/09/2011 18:23:31

The system also has a table that records the sum totals of thetime-dependent “values” for each of these actions, as well as thecorresponding user ID and entity ID. This table will be referred to asthe “action-values” table, an example of which is shown in Table 2

TABLE 2 User Entity ID ID ID Action1 Action2 Action3 Action4 Action5Action6 Action7 Total 1 1 3 50 25 36 null 20 100 60 291 2 1 6 45 65 1510 55 90 46 326 3 2 2 45 15 65 20 54 180 65 444 4 3 8 125 null 24 nullnull 80 25 254 5 3 4 80 null 45 35 80 45 26 311

On a periodic basis, the system updates this table by querying the“actions” table. The value for each of the actions should bere-calculated according to Equation 1:

$\sum\limits_{i = 1}^{N}{C_{action}*D^{- F_{action}}}$

where C_(action) is a coefficient associated with the importance of theassociated action, and D is the number of days since the action wasperformed, and F_(action) is a coefficient associated with thetime-dependence of the value for the associated action.

Creating an ad: When an advertiser wants to create an advertisement tobe displayed in the system, they select a set of keywords that theywould like to associate with the advertisement. For example, anadvertisement for a golf shop located in Saint Louis, Mo. might have thefollowing keywords:

-   golf-   golf store-   Saint Louis-   PGA-   golf course-   golf club-   golf equipment

The advertiser then assigns a set of importance weights to each of thesekeywords. The total of the weights should sum to 100%. For example:

-   golf store—30%-   golf equipment—25%-   Saint Louis—20%-   golf—10%-   PGA—5%-   golf course—5%-   golf club—5%

The advertiser can choose as many or as few keywords as they wish, butthe weights must always sum to 100%.

Choosing which users to display ads to: What the advertiser can thenpurchase is the following:

-   An anonymous list of users and associated information about those    users, based on keyword(s)-   A service to display ads to those users when they visit.

A key step in this process is first determining which users' activityinformation to purchase and secondly which of those users to display adsto.

Below is an example of this process, applied for a small highly-targetedadvertising campaign, using the golf store example above. Although thisadvertiser has selected a number of keywords for its ad campaign, fordemonstration purposes, we will first show how the process works for asingle keyword.

For the single keyword “golf store”, the advertiser can purchase anordered list of users that have recent activity associated with thekeyword “golf store”. They can choose as many or as few users as theywant. For demonstration purposes, let's say they purchase a list of 10users, as shown in Table 3.

TABLE 3 Value for “golf ID in list store” 1 1245 2 1156 3 1025 4 1011 5985 6 952 7 920 8 911 9 905 10 894

For each of these users, the advertiser will probably want to know someadditional information about the user's interests. By default, thepurchase of the list above should include a list of the “top 10”entities for each of the user in the list. For example, for “user 1” inthe list, the advertiser would see the following “top 10” list, as shownin Table 4.

TABLE 4 ID in list Top entities for ID 1 1 golf store 2 golf equipment 3golf courses 4 tennis 5 PGA 6 Tiger Woods 7 Roger Federer 8 US Open 9Saint Louis 10 golf

The advertiser can then decide whether they want to target ads to thisuser or not, based on the information available in this list. Theadvertiser can also choose to purchase additional “top entities” fromthe user, up to some limit specified by the system for privacy reasons.

More complex example, using all of the keywords: The process is the sameas above, except the calculation of “value” is instead a weighted valuefor each of the keywords. From the example above, we saw that “user 1”had value of 1245 for the keyword “golf store”. Since for theadvertiser, “golf store” has a weight of 30, the weighted value for“golf store” is 30*1245 or 37350. The weighted value for each keyword iscalculated as shown in the table below, as well as the final “weightedaverage,” as shown in Table 5.

TABLE 5 Keyword Weight Keyword Value Weighted Value Golf store 30 124537350 Golf equipment 25 965 24125 Saint Louis 20 1725 34500 golf 10 152015200 PGA 5 425 2125 Golf course 5 295 1475 Golf club 5 457 2285 Total117060 Weighted Average 1170.6

Finally, what the advertiser will receive is a list of users, ordered bythe weighted average for their set of keywords, similar to the list ofusers shown above for the single keyword example, as shown in Table 6.

TABLE 6 ID in list Weighted Average 1 1170.6 2 1136.2 3 1035.4 4 1021.05 975.2 6 963.1 7 941.7 8 932.4 9 927.6 10 899.4

Again, the advertiser will also receive a “top 10” list of entities foreach of the users in the list.

Selecting which users to display advertisements to: Finally, after theadvertiser receives a list of users that have high activity in thekeywords of their choice, the advertiser can select which of users todisplay advertisements to. Based on the “top 10” lists, the advertisercan already “weed out” users that they are not interested in. Notice inTable 7 below that several users from the original ten have been removedfrom the list.

The next step is to see the cost to display ads for each of the users.This is expressed as a price to purchase a percentage of the users“views” per day. For our “golf store” example, the price and theapproximate number of views that the targeted users generate per day isshown in Table 7.

TABLE 7 Approximate views ID in Price per % of views (Impressions) Perlist Weighted Average per day Day 1 1170.6 0.25 150 2 1136.2 0.24 160 31035.4 0.35 140 4 1021.0 0.22 180 6 963.1 0.45 200 7 941.7 0.36 120 9927.6 0.10 220

These prices are determined based on the market supply and demand forserving advertisements to those specific users. For example, if thereare already a lot of orders for ads to be served to “user 6,” the costof displaying new ads to him or her will be higher than a user who hasnot generated many ads. If a particular user already has adsrepresenting 100% of his/her views for a particular time period, thenthe system will indicate to the advertiser that ads for this user areonly available after that particular period.

TABLE 8 ID in Weighted Price per % of Percent ID list Average views perday ordered Days Totals 1 1 1170.6 0.25 25% 14 0.875 2 2 1136.2 0.24 25%14 0.84 3 3 1035.4 0.35 25% 14 1.225 4 4 1021.0 0.22 20% 14 0.77 5 7941.7 0.36 20% 14 1.26 6 9 927.6 0.10 20% 14 0.35 Grand Total 5.32

For large campaigns: The above example works well for a small businessthat wants to run a small, highly-targeted ad campaign. Largercompanies, however, may not want to devote time and resources toexploring in detail the set of users that they will serve ads to. Thus,the system has a query engine for such companies to quickly perform thefollowing types of queries. For example, “Select top 1000 users forgiven keywords that have price below 0.30 and only if they have weightedaverage above 800.” Thus it is thus possible to select a large number ofusers and filter them based on the advertisers' desired criteria.

Experts and Expert Opinions

The disclosed invention contains a process for a user to submitcredentials to be designated an expert on a particular subject, throughan interface accessed from the World Wide Web.

-   -   1. User clicks a “Become an Expert” button.    -   2. System displays an application form, which consists of three        parts:        -   a. Subjects for which the user would like to be designated            as an expert: In this interface, the user can type in            various subjects for which he or she would like to be            designated as an expert. These subjects can be existing            entities/categories, or the user can create new            entities/categories. The user can select as many subjects as            he/she wants, but must select at least one subject area.        -   b. Submission of expertise credentials: In this interface,            the user can submit various forms of credentials that            provide evidence of the user's expertise on the above chosen            subject areas. This can include uploading of a resume or CV,            uploading of a list of publications, links to relevant            websites, and references to other known experts who can            vouch for the user's expertise in the chosen areas.        -   c. Verification of the user's identity: In this interface,            the user can verify his or her identify by selecting one of            the available verification methods. These can include (but            are not limited to): verification by email address,            verification by credit card, or verification by submission            of identification. Verification by email address will only            be allowed for users that have email addresses given by            reputable organizations, such as universities, government            agencies, and established companies (employee emails only,            i.e. no “self-serve” email services). Verification by credit            card will be done by submitting credit card information for            major credit card companies. Verification by submission of            identification will be performed by the user uploading a            scanned government-issued form of identification. These            scanned forms of identification will then be verified by            third-party methods.    -   3. When the user is finished supplying all of the requested        information, he or she clicks “Submit Application.”    -   4. The system then sends the application to an administrator,        who reviews the application, and then assigns the user to a        particular level of expertise for each of the subject areas to        which the user applied, through an administrator interface. The        administrator can also choose to reject the application for        expertise status for one or more subject areas.    -   5. When the administrator has completed his or her review and        expertise-level assignments, he or she clicks a “Complete        Processing” button.    -   6. If one or more expert-level assignment has been made, the        system updates a database table to specify the user as an expert        in each of the applicable subject areas and also records the        expertise-level. These expertise levels are used to determine        the magnitude of effect that this particular user has when he or        she confirms or disputes a relationship. For example, the        confirmation of a particular relationship by an expert user may        have 5 times the effect of a non-expert user confirming the same        relationship.    -   7. Lastly, the administrator sends notification to the user that        their application has been processed. The user will have the        option to update and/or appeal his or her application, should        the user not be satisfied with the administrator's decisions.

Entity Relationship Position Value

The disclosed invention contains a process for users to assign theirposition concerning a relationship and for calculating a value thatrepresents the relationship's “position value” and sorting relationshipsby this value, through an interface accessed from the World Wide Web.For any relationship in the system, users have the option to assert a“position” concerning that relationship as either positive or negative(in some embodiments may also be known as “confirm/dispute”,“like/dislike,” “agree/disagree,” “approve/disapprove,” etc.). Thus,this process for users to indicate a position and calculating a valuebased on these user positions consists of the following steps:

-   -   1. A user clicks on a “positive” indicator button (i.e.        “confirm”, “like,” “agree”, “approve”, etc.) for a particular        relationship.    -   2. The system increases the associated relationship's “position        value” by a value proportional to the user's “credibility        weight”, which is a weight determined by the user's expert        status concerning that relationship. As described above, some        users may attain an expert status that allows for their positive        or negative position to have a greater effect on the        relationship's “position value” than users without expert        status. The determination of a user's expert status concerning a        particular relationship is determined according to processes        described below.    -   3. The system also changes the “positive” indicator button in a        matter that gives the user the option to remove his or her        “positive” position concerning the relationship (e.g.        “unconfirm”).    -   4. If the same user clicks this button to remove his or her        “positive” position concerning the relationship, the system will        decrease the relationship's “position value” by the same amount        as described in step 2 above.    -   5. A user clicks on a “negative” indicator button (i.e.,        “dispute”, “dislike,” “disagree”, “disapprove”, etc.) for a        particular relationship.    -   6. The system decreases the associated relationship's “position        value” by an amount according to the user's expert status        concerning that relationship, which is determined in the same        way as described in step 2 above.    -   7. The system also changes the “negative” indicator button in a        manner that gives the user the option to remove his or her        “negative” position concerning the relationship (e.g.        “undispute”).    -   8. If the same user clicks this button to remove his or her        “negative” position concerning the relationship, the system will        increase the relationship's “position value” by the same amount        as described in step 6 above.

As described above, the system contains a process for sorting a set ofrelationships based on the relationships' “position value,” comprisingthe following steps:

-   -   1. A user performs a search query or otherwise visits a page        containing a list of relationships. In the interface containing        this list of relationships, the system contains a button for        sorting the relationships by the “position value” (may also be        known as “sort by confirmation level,” “sort by agreement        level,” or something similar, as described in process above).    -   2. The user clicks on this sort button.    -   3. The system reorders the list of relationships, ordering them        from highest “position value” to lowest “position value” (i.e.        descending “position value”). The system also modifies the sort        button to a button for reversing the sort order to that of        ascending “position value”.    -   4. The user clicks on the “reverse sort order” button.    -   5. The system reorders the list of relationships, ordering them        from lowest “position value” to highest “position value” (i.e.        ascending “position value”). The system also modifies the sort        button to return to its previous state (i.e. descending        “position value”).

Automatically Designating Experts

The disclosed invention contains a process for automatically designatinga user as an “expert” on a particular subject, based on the user'sactivity. If a user is very “active” in a particular information domain(creating many relationships, confirming or disputing manyrelationships, following many entities), then it is likely that thisuser has some level of expertise in that information domain. Based onthis likeliness, the system contains a process to analyze this activityand “automatically” assign an expertise level based on this activity.

The means of determining discrete “subject areas” is based on sets ofhighly “clustered” or connected entities. For example, you might expectthe subject area of “astronomy” to contain a highly connected set ofrelationships containing the following entities:

-   Planet-   Galaxy-   Star-   Solar System-   Telescope-   Sun-   Black Hole    Thus, the system contains a process for analyzing relationships to    determine highly clustered sets of relationships representing    discrete subject areas. The names of the subject areas associated    with these clustered sets are determined by an administrator, or in    some embodiments of the invention, are determined automatically    based on which entities occur most frequently in the clustered sets.

For a user to be automatically designated as an “expert” on the subject“astronomy”, he or she should have a lot of “activity” involving theseentities: for example, creating many relationships containing theseentities, confirming or disputing many relationships containing theseentities, or following a large number of these entities. Thus, thesystem contains a process for automatically determining a user's expertstatus on specific subject areas, which is similar to the processdescribed in process above for determining users' interests. The maindifference between these two processes is that, in the “expertdesignation” process, different weights are assigned to the possibleactions that a user can perform. In other words, the weights areadjusted to more closely reflect activities that experts would beexpected to perform, for example, creating relationships. Anothercharacteristic that one might expect is that the relationships this userhas created in this subject area are confirmed by many other users anddisputed by few other users. Thus, the “expert designation” process alsodiffers from process described above, in that the weight applied tocreation of relationships is affected by confirmations or disputationsof those relationships.

Utilizing the processes described above, the system contains a processto automatically designate certain users as experts on particularsubject areas, where the subject areas represent “clusters” of highlyconnected entities which have been assigned specific subject area names(for example, astronomy). Expert designation follows a process, whereeach time a user creates a relationship using an entity in this cluster,he or she receives expert “points” for that subject area (for example,50 points for each relationship created). Each time another userconfirms that relationship, the original user (who created therelationship) receives additional points (for example, 2 points).Similarly, each time another user disputes that relationship, theoriginal user loses some amount of expert points (for example, 2points).

In the same manner, a user receives expert points by following entitiesin this cluster or confirming/disputing relationships containingentities in this cluster.

Based on this point system, the system categorizes users within thissubject area based on the amount of expert points they have accumulatedfor that subject area. For example, users in the top 1^(st) percentilewould have a “world-class expert” level, users in the 2^(nd) to 10^(th)percentile would have a “advanced expert” level, users in the 11^(th) to20^(th) percentile would have an “intermediate expert” level, etc. Theexpert level determines the effect of the expert's “position” onrelationships in that subject area, in the same way as described above.

Sandboxes

The disclosed invention contains a process for allowing users to createa “sandbox,” which is defined as an area where users can make changes toa certain portion of the entity-relationship database and view theresults without committing the changes to the entity-relationshipdatabase, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. User clicks on a “Create sandbox” button.    -   2. The next step in setting up a sandbox is for the user to        select relationships to pull into the “sandbox” for        modifications. Thus, the system displays a search interface,        where the user can perform a search query of relationships.    -   3. User performs a search query.    -   4. System displays the search results along with checkboxes to        select which of the relationships to bring into the “sandbox”.    -   5. User selects one or more relationships to bring into the        “sandbox”.    -   6. User clicks a “View sandbox” button.    -   7. System displays a list of the relationships the user has        selected to bring into the “sandbox,” which are displayed in        “editable” mode.    -   8. User edits one or more relationships in the sandbox.    -   9. When the user has finished making his or her edits, he clicks        a “Save sandbox” button.    -   10. System saves the current state of the sandbox.

The disclosed invention contains a process for a user to merge a“sandbox” back into the full entity-relationship database, through aninterface accessed from the World Wide Web, comprising the followingsteps:

-   -   1. From the user's “sandbox view”, he or she clicks a “Merge        sandbox” button.    -   2. System displays an interface for merging the user's sandbox        into the system's database of entity-relationships, which        includes a list of the user's modifications to the        relationships, including the original forms of the relationship,        and options to merge either individual modifications or merge        all modifications as a batch process.    -   3. User selects one or more modifications to merge into the        system, or chooses the option to merge all modifications as a        batch process.    -   4. In some embodiments of the system, there may be an approval        process for making changes to existing relationships in the        system (for this, refer to the “workflow” control process        described below). In these cases, the system will send        notification(s) to the user or users who must approve the        modifications prior to them being incorporated into the system.    -   5. Once all required approval requirements have been met, the        system saves the modified relationship(s) into the system and        updates the “updated at” attribute of the relationship. A record        of the modification is also stored in a separate database table        with information sufficient to “undo” the modification at a        later date.

Controlling Workflow—Approving Changes

The disclosed invention contains a process for controlling the“workflow” of approval of changes to the entity-relationship database,through an interface accessed from the World Wide Web, comprising thefollowing steps:

-   -   1. As described above, the system sends notifications (via        e-mail, or via messages inside the web-based system) to the user        or set of users that must approve a modification to a        relationship or set of relationships stored in the system. In        some embodiments of the system, there may be a sequence of        “approvers” that must approve changes before the modifications        are finally adopted into the system. In this description, we        describe the process for two such “approvers,” although there        may be as few as one approver or as many as may be desired by        the users of the system.    -   2. A user who receives a notification of a modification may at        any time click on a link in the notification to see the current        status of the proposed modifications.    -   3. In response to such a request, the system displays        information about the proposed modification, such as the        original and proposed form of the relationship, the user who        proposed the change, the time and date the change was proposed,        the ordered list of users who must approve the changes and the        current status of their approval, the overall status of the        proposed change, and any comments stored by users regarding the        proposed change.    -   4. For the first user in the “approver” list, the system        displays next to his or her username in the ordered list of        “approvers” a set of options to approve, disapprove, modify, or        comment on the proposed change.    -   5. This user selects his or her desired response to the proposed        change (approve, disapprove, modify, or comment). If the user        selects “modify” or “comment”, the user must also enter his or        her modifications or comments, as appropriate.    -   6. After the user has entered his or her desired response, the        system sends a notification to both the “proposer” of the change        and the next user in the ordered list of “approvers,” containing        information about the user's response.    -   7. If the response of the first “approver” was either a        rejection or modification of the proposed change, the original        “proposer” of the change has an opportunity to either modify the        original proposed change or to accept or reject the first        approver's modification to the change. For the purposes of this        description, it is assumed the first “approver” has either        approved the original proposed change, or the “proposer” has        modified his or her change to be acceptable to the “first        approver”.    -   8. The next user in the “approver” list clicks on a link in the        notification to view the current status of the proposed        modification.    -   9. The system displays the current information associated with        the proposed modification, similarly to what is described in        step 3.    -   10. For the second user in the “approver” list, the system        displays next to his or her username in the ordered list of        “approvers” a set of options to approve, disapprove, modify, or        comment on the proposed change.    -   11. This user selects his or her desired response to the        proposed change (approve, disapprove, modify, or comment). If        the user selects “modify” or “comment”, the user must also enter        his or her modifications or comments, as appropriate.    -   12. If this user is the final user in the “approvers” list (as        assumed to be the case in this description), the system sends a        notification to all the “approvers” in the list, as well as to        the “proposer.”    -   13. If the status of the proposed change is “approved”, the        system incorporates the change into the system, as described in        step 5 of the sandbox “merging” process described before.    -   14. If the status of the proposed change is “rejected”, then the        proposer has the opportunity to modify his or her change, which        would cause the approval process to be reinitiated.

Geolocation

The disclosed invention contains a process for displaying results basedon the geolocation (position) of the user, as indicated by the user orby a positioning device supplying data to the system, through aninterface accessed from the World Wide Web, comprising the followingsteps:

-   -   1. User clicks on a button “sort by location”.    -   2. System receives the user's current position, either supplied        by a positioning device attached to the system, or by a separate        information service knowing the user's position. If the user's        position is not known, the system asks the user to enter his or        her current position by displaying an interface for entering        one's position.    -   3. If the user is asked by the system for his or her current        position, the user enters his or her position in a form of his        or her choice (e.g. “St. Louis”, “United States”, “38° 35′ N,        90° 12′ W”, etc.)    -   4. System displays a list of relationships that are associated        with the user's location. The possible location associations        include, but are not limited to:        -   a. Location of the user who created the entity (if known)        -   b. Location of entities contained in the relationship, if            known. For example, the relationship “St. Louis is a city”            might be included in the list, if the user's current            location is in or near the city St. Louis.

Relationships are sorted from “nearest” to “furthest,” based on thedistance between the user's location and the location associated withthe relationship. For relationships that have an equal distance value, asecondary sorting criteria is used, as determined by the user's sortingpreferences (e.g. default sorting has been set to “time descending,” sosecondary sorting criteria is the time that the relationship was createdin descending order). In some embodiments of the invention “specificity”may also be used as a sorting criteria. For example, the relationship“St. Louis is a city,” in addition to a location parameter, may alsohave a specificity parameter of 50 km. Thus, the system could usespecificity as a secondary sorting criteria to show relationships withan associated location that are both near to the user and having a highlevel of specificity.

Groups of Users

The disclosed invention contains a process for grouping users into usergroups, through an interface accessed from the World Wide Web,comprising the following steps:

-   -   1. User clicks an “Add Group” button.    -   2. System displays a set of groups for the user to choose from,        including information about the groups, such as total number of        members, total number of relationships associated with the        group, and the most recent relationship associated with the        group.    -   3. User clicks on the “join” button for a particular group.    -   4. System adds the user to the group membership list.

The disclosed invention contains a process for viewing relationshipscreated or modified by a particular user or group of users, through aninterface accessed from the World Wide Web, comprising the followingsteps:

-   -   1. User clicks on a link corresponding to a particular user or        group of users.    -   2. System displays a list of relationships associated with the        selected user or group of users, as well as information about        the user or group of users, such as total number of        relationships created, entities most commonly used by the user        or group of users, and number of relationships confirmed or        disputed.

Flowchart and System Diagram of an Illustrative Embodiment

Accordingly, FIG. 12 illustrates a flowchart 1200 of a process of oneembodiment of the present invention. The process starts at step 1202,which then proceeds to step 1204, displaying an entity-relationshipgraph to a first user, said graph showing one or more items selectedfrom a group consisting of nodes representing entities stored in adatabase and edges representing relations stored in said database. Theprocess then proceeds to step 1206, receiving an input from said firstuser. The process then proceeds to step 1208, in response to said inputfrom said first user, creating a new relationship. The process thenproceeds to step 1210, storing said new relationship in said database.The process then proceeds to step 1212, displaying saidentity-relationship graph to a second user, said graph showing one ormore items selected from a group consisting of nodes representingentities stored in said database and edges representing relations storedin said database. The process then proceeds to step 1214, receiving aninput from said second user. The process then proceeds to step 1216, inresponse to said input from said second user, creating a second newrelationship. The process then proceeds to step 1218, storing saidsecond new relationship in said database. The process then proceeds tostep 1220, receiving an input from a voting user. The process thenproceeds to step 1222, in response to said input from said voting user,assigning weights to one or more relationships in said database. Theprocess then proceeds to step 1224, disambiguating a plurality of saidrelationships based on said assigned weights. The end of the process isachieved at step 1226.

FIG. 13 illustrates a system 1300 according to one embodiment in whichthe present invention may be practiced. The system includes a userinterface 1302, which may be displayed to a user of the system through adisplay device. The system also includes a processor 1304, operativelyconnected to memory unit 1310. The memory unit 1310 has loadedinformation management routine 1312, which when executed causes thesystem to perform a process comprising the steps of displaying anentity-relationship graph to a first user, said graph showing one ormore items selected from a group consisting of nodes representingentities stored in a database and edges representing relations stored insaid database; receiving an input from said first user; in response tosaid input from said first user, creating a new relationship; storingsaid new relationship in said database; displaying saidentity-relationship graph to a second user, said graph showing one ormore items selected from a group consisting of nodes representingentities stored in said database and edges representing relations storedin said database; receiving an input from said second user; in responseto said input from said second user, creating a second new relationship;storing said second new relationship in said database; receiving aninput from a voting user; in response to said input from said votinguser, assigning weights to one or more relationships in said database;and disambiguating a plurality of said relationships based on saidassigned weights. Finally, system 1300 includes a connection betweenprocessor 1304 and a cloud 1308. This cloud may, for example, be anetwork connection to the Internet, connecting the processor 1304 to aremote information management database 1314 where information managementdata, such as entities and relationships, are stored and referenced.

While the methods disclosed herein have been described and shown withreference to particular operations performed in a particular order, itwill be understood that these operations may be combined, sub-divided,or re-ordered to form equivalent methods without departing from theteachings of the present invention. Accordingly, unless specificallyindicated herein, the order and grouping of the operations is not alimitation of the present invention.

While the present invention has been particularly shown and describedwith reference to embodiments thereof, it will be understood by thoseskilled in the art that various other changes in the form and detailsmay be made without departing from the scope of the present invention asdefined by the claims.

1. A computer-implemented method of collaboratively managing anentity-relationship graph, comprising: displaying theentity-relationship graph to a voting user; collecting data on expertstatus of the voting user indicating whether the voting user is anexpert on a given topic; assigning a voting weight to one or morerelationships in said entity-relationship graph in response to an inputfrom the voting user and based on the voting user's expert status; andsorting the relationships in the entity-relationship graph based atleast on said voting weight.
 2. The method of claim 1, furthercomprising: calculating a relationship path between two entities in saidentity-relationship graph.
 3. The method of claim 2, wherein therelationship path is displayed on said entity-relationship graph as achain of nodes and edges.
 4. The method of claim 1, wherein said inputfrom said voting user is represented by an indication of the votinguser's opinion about one or more relationships.
 5. The method of claim1, further comprising: collapsing said entity-relationship graph byreplacing two or more relationships in the entity-relationship graphwith a single relationship.
 6. The method of claim 1, wherein saidsecond new relationship represents a modification to said first newrelationship.
 7. The method of claim 1, further comprising: displayingto an advertiser an ordered list of viewing users that have recentactivity associated with a predetermined keyword, weighted by animportance weight of the keyword to the advertiser.
 8. The method ofclaim 7, further comprising: displaying to the advertiser a price todisplay an advertisement to each viewing user on the ordered list ofviewing users, said price based on a market supply and demand forserving advertisements to said viewing users.
 9. The method of claim 1,further comprising: receiving an input from the voting user indicatingthat the voting user would like to be designated as an expert; andreceiving credentials from said voting user to substantiate the votinguser's expert status.
 10. The method of claim 1, further comprising:displaying the sorted relationships in an updated version of theentity-relationship graph to one or more additional users; and creatinga new relationship in the entity-relationship database in response to aninput from said one or more additional users.
 11. A computer system forcollaboratively managing an entity-relationship graph, comprising: oneor more memories for storing program code; and one or more processors,operatively connected to the one or more memories, for executing thestored program code, which when executed causes the system to perform aprocess comprising the steps of: displaying the entity-relationshipgraph to a voting user; collecting data on expert status of the votinguser indicating whether the voting user is an expert on a given topic;assigning a voting weight to one or more relationships in saidentity-relationship graph in response to an input from the voting userand based on the voting user's expert status; and sorting therelationships in the entity-relationship graph based at least on saidvoting weight.
 12. The computer system of claim 11, wherein the storedprogram code when executed further causes the system to perform the stepof: calculating a relationship path between two entities stored in saidentity-relationship graph.
 13. The computer system of claim 12, whereinthe relationship path is displayed on said entity-relationship graph asa chain of nodes and edges.
 14. The computer system of claim 11, whereinsaid input from said voting user is represented by an indication of thevoting user's opinion about one or more relationships.
 15. The computersystem of claim 11, wherein the stored program code when executedfurther causes the system to perform the step of: collapsing saidentity-relationship graph by replacing two or more relationships in theentity-relationship graph with a single relationship.
 16. The computersystem of claim 11, wherein said second new relationship represents amodification to said first new relationship.
 17. The computer system ofclaim 11, wherein the stored program code when executed further causesthe system to perform the step of: displaying to an advertiser anordered list of viewing users that have recent activity associated witha predetermined keyword, weighted by an importance weight of the keywordto the advertiser.
 18. The computer system of claim 17, wherein thestored program code when executed further causes the system to performthe step of: displaying to the advertiser a price to display anadvertisement to each viewing user on the ordered list of viewing users,said price based on a market supply and demand for servingadvertisements to said viewing users.
 19. The computer system of claim11, wherein the stored program code when executed further causes thesystem to perform the steps of: receiving an input from the voting userindicating that the voting user would like to be designated as anexpert; and receiving credentials from said voting user to substantiatethe voting user's expert status.
 20. The computer system of claim 11,wherein the stored program code when executed further causes the systemto perform the steps of: displaying the sorted relationships in anupdated version of the entity-relationship graph to one or moreadditional users; and creating a new relationship in theentity-relationship graph in response to an input from said one or moreadditional users.